در سالهای اخیر، مفهوم امنیت سایبری تغییرات بزرگی را تجربه کرده است. اگر در گذشته تمرکز اصلی سازمانها روی جلوگیری از نفوذ مستقیم هکرها به شبکهها و سرورها بود، امروز مهاجمان مسیرهای پیچیدهتر و هوشمندانهتری را انتخاب میکنند. یکی از مهمترین این مسیرها، حملات زنجیره تأمین نرمافزار یا Software Supply Chain Attack است.
در چنین حملاتی، مهاجم بهجای هدف قرار دادن مستقیم قربانی، ابزارها، کتابخانهها یا dependencyهایی را آلوده میکند که هزاران توسعهدهنده و شرکت به آنها اعتماد دارند. همین مسئله باعث شده حملات supply chain به یکی از بزرگترین نگرانیهای متخصصان امنیت سایبری تبدیل شوند.
کمپین مخرب Mini Shai-Hulud یکی از جدیدترین و خطرناکترین نمونههای این نوع حملات محسوب میشود. این کمپین توانست با سوءاستفاده از ضعفهای موجود در زیرساختهای CI/CD و workflowهای GitHub Actions، نسخههای آلوده اما کاملاً معتبر را وارد اکوسیستم npm و PyPI کند.
نکته نگرانکننده اینجاست که بسیاری از ابزارهای امنیت سایبری نیز در شناسایی اولیه این تهدید ناکام ماندند، زیرا مهاجمان نسخههای مخرب را با امضاهای معتبر منتشر کرده بودند. در این مقاله به بررسی کامل Mini Shai-Hulud، نحوه عملکرد آن، خطرات احتمالی و راهکارهای مقابله با چنین تهدیداتی میپردازیم.
آنچه در ادامه میخوانید:
چرا Mini Shai-Hulud برای امنیت سایبری اهمیت دارد؟
نحوه عملکرد کمپین Mini Shai-Hulud
ارتباط Mini Shai-Hulud با آینده امنیت سایبری
چگونه از حملات مشابه جلوگیری کنیم؟
Mini Shai-Hulud یک کمپین مخرب در حوزه امنیت سایبری است که پروژههای متنباز و اکوسیستم توسعه نرمافزار را هدف قرار داده است. این بدافزار از طریق انتشار پکیجهای آلوده در npm و PyPI گسترش پیدا میکرد و پس از نصب، اطلاعات حساس سیستم و محیط توسعه را سرقت میکرد.
برخلاف بسیاری از بدافزارهای سنتی، Mini Shai-Hulud تنها به آلودهسازی یک سیستم محدود نبود. این کمپین بهگونهای طراحی شده بود که بتواند از یک پروژه به پروژهای دیگر منتقل شود و در اکوسیستم توسعه نرمافزار گسترش پیدا کند. همین موضوع باعث شد بسیاری از کارشناسان امنیت سایبری آن را یک بدافزار worm-like یا شبهکرم توصیف کنند.
نام این کمپین از موجود افسانهای Shai-Hulud در دنیای Dune گرفته شده است موجودی عظیم که در سکوت حرکت میکند و همهچیز را در مسیر خود نابود میکند. این نامگذاری بهخوبی ماهیت پنهان و خزنده این بدافزار را توصیف میکند.
در گذشته بسیاری از حملات زنجیره تأمین نرمافزار از طریق روشهای سادهای مانند typosquatting انجام میشدند یعنی مهاجم پکیجی با نام مشابه ایجاد میکرد تا توسعهدهندگان اشتباها آن را نصب کنند. اما Mini Shai-Hulud سطح جدیدی از پیچیدگی را وارد دنیای امنیت سایبری کرد.
مهاجمان در این حمله موفق شدند به credentialهای واقعی انتشار پکیج دسترسی پیدا کنند و نسخههای آلوده را با امضای معتبر منتشر کنند. به همین دلیل بسیاری از ابزارهای امنیت سایبری و سیستمهای بررسی dependency، این نسخهها را قانونی تشخیص میدادند. این اتفاق نشان داد که حتی فناوریهایی مانند Sigstore و SLSA نیز در صورت ضعف زیرساختهای CI/CD نمیتوانند امنیت کامل را تضمین کنند. در واقع، Mini Shai-Hulud ثابت کرد که اگر pipeline توسعه نرمافزار بهدرستی ایمنسازی نشده باشد، مهاجمان میتوانند از همان مکانیزمهای امنیتی برای مخفی کردن حمله استفاده کنند.
یکی از اصلیترین بخشهای این حمله، سوءاستفاده از workflowهای ناامن GitHub Actions بود. امروزه بسیاری از پروژههای متنباز و حتی شرکتهای بزرگ از GitHub Actions برای build، تست و deploy خودکار استفاده میکنند. اما اگر permissionها بهدرستی تنظیم نشده باشند، مهاجمان میتوانند از این workflowها برای سرقت tokenها یا دسترسی به runnerها سوءاستفاده کنند.
در کمپین Mini Shai-Hulud، مهاجمان از تکنیکهایی مانند cache poisoning و استخراج OIDC token استفاده کردند تا به credentialهای CI/CD دسترسی پیدا کنند. این موضوع بار دیگر نشان داد که امنیت سایبری در محیطهای DevOps فقط به اسکن کد محدود نمیشود و باید کل pipeline توسعه ایمنسازی شود.
پس از سرقت credentialها، مهاجمان نسخههای آلوده را مستقیما در npm و PyPI منتشر میکردند. خطرناکترین بخش ماجرا این بود که این نسخهها دارای امضای معتبر و provenance قانونی بودند. همین موضوع باعث شد بسیاری از توسعهدهندگان و حتی ابزارهای امنیت سایبری به این نسخهها اعتماد کنند. در نتیجه، تعداد زیادی سیستم در مدت کوتاهی آلوده شدند. این اتفاق نشان میدهد که اعتماد کامل به امضای دیجیتال بدون بررسی امنیت زیرساخت CI/CD میتواند خطرناک باشد.
پس از نصب پکیج آلوده، payload بدافزار اجرا میشد و اطلاعات حساسی را جمعآوری میکرد. این اطلاعات شامل موارد زیر بود:
این دادهها سپس برای گسترش حمله یا نفوذ به پروژههای دیگر استفاده میشدند. در برخی نمونهها، بدافزار حتی فایلهای تنظیمات VS Code و ابزارهای AI Coding Assistant را تغییر میداد تا بتواند پس از حذف پکیج نیز دوباره فعال شود.
کمپین Mini Shai-Hulud تنها یک حمله معمولی نبود بلکه نشانهای از تحول تهدیدات در دنیای امنیت سایبری است. مهاجمان اکنون بهجای حمله مستقیم، اعتماد موجود در اکوسیستم نرمافزار را هدف قرار میدهند.
از طرف دیگر، افزایش استفاده از DevOps، زیرساختهای ابری و ابزارهای خودکار باعث شده سطح حمله بسیار گستردهتر شود. بسیاری از سازمانها هنوز استانداردهای DevSecOps را بهدرستی پیادهسازی نکردهاند و همین مسئله میتواند زمینهساز حملات مشابه شود. در آینده احتمالا شاهد بدافزارهایی خواهیم بود که هوشمندتر، مخفیتر و خودکارتر از Mini Shai-Hulud عمل میکنند.
فعالسازی احراز هویت چندمرحلهای برای حسابهای GitHub ،npm و PyPI یکی از مهمترین اقدامات امنیت سایبری برای جلوگیری از سرقت credentialها است.
بسیاری از workflowها دسترسیهای غیرضروری دارند. کاهش permissionها، استفاده از runnerهای ایزوله و محدود کردن pull requestهای ناشناس میتواند خطر حمله را کاهش دهد.
در حوزه امنیت سایبری، اعتماد کامل به dependencyها اشتباه بزرگی است. استفاده از ابزارهای Dependency Scanning و بررسی مداوم نسخههای جدید اهمیت بسیار زیادی دارد.
اسکریپتهای preinstall و postinstall یکی از رایجترین نقاط اجرای بدافزارها هستند. کنترل یا غیرفعالسازی آنها در محیط CI میتواند تا حد زیادی خطر آلودگی را کاهش دهد.
سازمانها باید امنیت سایبری را به بخشی از فرایند توسعه نرمافزار تبدیل کنند. استفاده از رویکرد DevSecOps میتواند بسیاری از ضعفهای امنیتی pipelineها را کاهش دهد.
کمپین Mini Shai-Hulud نشان داد که تهدیدات مدرن امنیت سایبری دیگر صرفا به نفوذ مستقیم محدود نمیشوند. مهاجمان اکنون اعتماد موجود در اکوسیستم توسعه نرمافزار را هدف قرار دادهاند و از ابزارهای قانونی برای اجرای حملات مخرب استفاده میکنند. این حمله هشداری جدی برای توسعهدهندگان، تیمهای DevOps و متخصصان امنیت سایبری است. هر dependency، هر workflow و هر token میتواند به نقطه ورود مهاجمان تبدیل شود. در دنیایی که وابستگی به پکیجهای متنباز هر روز بیشتر میشود، امنیت زنجیره تأمین نرمافزار باید به بخشی حیاتی از استراتژی امنیت سایبری سازمانها تبدیل شود.

Mini Shai-Hulud یک کمپین مخرب در حوزه امنیت سایبری است که از طریق پکیجهای آلوده در npm و PyPI منتشر میشود و هدف آن سرقت اطلاعات و گسترش آلودگی در زنجیره تأمین نرمافزار است.
زیرا مهاجمان نسخههای آلوده را با امضای معتبر منتشر کردند و بسیاری از ابزارهای امنیت سایبری نیز در شناسایی اولیه آن ناکام ماندند.
سرقت credentialها، دسترسی به زیرساختهای ابری، نفوذ به پروژههای بیشتر و گسترش آلودگی در اکوسیستم توسعه نرمافزار.
استفاده از MFA، محدودسازی GitHub Actions، بررسی dependencyها، کنترل اسکریپتهای نصب و اجرای سیاستهای DevSecOps از مهمترین راهکارها هستند.
خیر. هر شرکت یا سازمانی که از dependencyهای آلوده استفاده کند میتواند قربانی این نوع حملات امنیت سایبری شود.